/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package by.bsu.scs_bsu.controller;

/**
 *
 * @author slavchoo
 */
import java.util.HashMap;
import javax.servlet.http.HttpServletRequest;
import by.bsu.scs_bsu.commands.Command;
import by.bsu.scs_bsu.commands.LoginCommand;
import by.bsu.scs_bsu.commands.LogoutCommand;
import by.bsu.scs_bsu.commands.NoCommand;

public class RequestHelper {

    private static RequestHelper instance = null;
    //enum map + private
    HashMap<String, Command> commands = new HashMap<String, Command>();

    private RequestHelper() {
        //заполнение таблицы командами
        commands.put("login", new LoginCommand());
        commands.put("logout", new LogoutCommand());
    }

    public Command getCommand(HttpServletRequest request) {
        //извлечение команды из запроса
        String action = request.getParameter("command");
        //получение объекта, соответствующего команде
        Command command = commands.get(action);
        if (command == null) {
            //если команды не существует в текущем объекте
            command = new NoCommand();
        }
        return command;
    }
    //создание единственного объекта по шаблону Singleton

    public static RequestHelper getInstance() {
        if (instance == null) {
            instance = new RequestHelper();
        }
        return instance;
    }
}
